On RHEL5.2, ifup ${bridge} fails if ${bridge} != ${netdev},
because RHEL5.2's ifup ${bridge} runs the following sequence:
1. Search CONFIG that has the same mac address of ${bridge}.=20
ifcfg-${netdev} is found.
2. Run "ip link set dev ${netdev} up".
# ${bridge} is expected.
3. Output "Failed to bring up ${netdev}."
Because ${netdev} does not exist.
Thus, do_ifup() should not use ifup if ${bridge} != ${netdev}.
Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
}
do_ifup() {
- if ! ifup $1 ; then
+ if [ $1 != "${netdev}" ] || ! ifup $1 ; then
if [ -n "$addr_pfx" ] ; then
# use the info from get_ip_info()
ip addr flush $1
preiftransfer ${netdev}
transfer_addrs ${netdev} ${tdev}
+ # Remember the IP details for do_ifup.
+ get_ip_info ${netdev}
if ! ifdown ${netdev}; then
- # If ifdown fails, remember the IP details.
- get_ip_info ${netdev}
ip link set ${netdev} down
ip addr flush ${netdev}
fi